package org.aplombh.java.awcing.basic.basics.sort.mergeSort;

import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.IntStream;

/**
 * 给定你一个长度为 n 的整数数列。
 * <p>
 * 请你使用归并排序对这个数列按照从小到大进行排序。
 * <p>
 * 并将排好序的数列按顺序输出。
 * <p>
 * 输入格式
 * 输入共两行，第一行包含整数 n。
 * <p>
 * 第二行包含 n 个整数（所有整数均在 1∼109 范围内），表示整个数列。
 * <p>
 * 输出格式
 * 输出共一行，包含 n 个整数，表示排好序的数列。
 * <p>
 * 数据范围
 * 1≤n≤100000
 * 输入样例：
 * 5
 * 3 1 2 4 5
 * 输出样例：
 * 1 2 3 4 5
 */
public class MergeSort_787 {

    /**
     * the max size of the unsorted array
     */

//    private static final int N = 1000010;
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] ints = new int[n];
        IntStream.range(0, n).forEach(i -> ints[i] = scanner.nextInt());

        MyMergeSort.mergeSort(ints, 0, ints.length);

        Arrays.stream(ints).forEach(s -> System.out.print(s + " "));

    }
}





